﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyCpuMonitor.Classes
{
    public static class ComputerSystemDataLookUp
    {
        public static string AdminPasswordStatus(string code)
        {
            var s = "";
            switch (code)
            {
                case "1":
                    s = "Disabled";
                    break;
                case "2":
                    s = "Enabled";
                    break;
                case "3":
                    s = "Not Implemented";
                    break;
                case "4":
                    s = "Unknown";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string BootOptionOnLimit(string code)
        {
            var s = "";
            switch (code)
            {
                case "1":
                    s = "Reserved";
                    break;
                case "2":
                    s = "Operating System";
                    break;
                case "3":
                    s = "System Utilities";
                    break;
                case "4":
                    s = "Do Not Reboot";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string BootOptionOnWatchDog(string code)
        {
            var s = "";
            switch (code)
            {
                case "1":
                    s = "Reserved";
                    break;
                case "2":
                    s = "Operating System";
                    break;
                case "3":
                    s = "System Utilities";
                    break;
                case "4":
                    s = "Do Not Reboot";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string ChassisBootupState(string code)
        {
            var s = "";
            switch (code)
            {
                case "1":
                    s = "Other";
                    break;
                case "2":
                    s = "Unknown";
                    break;
                case "3":
                    s = "Safes";
                    break;
                case "4":
                    s = "Warning";
                    break;
                case "5":
                    s = "Critical";
                    break;
                case "6":
                    s = "Nonrecoverable";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string DomainRole(string code)
        {
            var s = "";
            switch (code)
            {
                case "0":
                    s = "Standalone Workstation";
                    break;
                case "1":
                    s = "Member Workstation";
                    break;
                case "2":
                    s = "Standalone Server";
                    break;
                case "3":
                    s = "Member Server";
                    break;
                case "4":
                    s = "Backup Domain Controller";
                    break;
                case "5":
                    s = "Primary Domain Controller";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string FrontPanelResetStatus(string code)
        {
            var s = "";
            switch (code)
            {
                case "0":
                    s = "Disabled";
                    break;
                case "1":
                    s = "Enabled";
                    break;
                case "2":
                    s = "Not Implemented";
                    break;
                case "3":
                    s = "Unknown";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string KeyboardPasswordStatus(string code)
        {
            var s = "";
            switch (code)
            {
                case "0":
                    s = "Disabled";
                    break;
                case "1":
                    s = "Enabled";
                    break;
                case "2":
                    s = "Not Implemented";
                    break;
                case "3":
                    s = "Unknown";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string PCSystemType(string code)
        {
            var s = "";
            switch (code)
            {
                case "0":
                    s = "Unspecified";
                    break;
                case "1":
                    s = "Desktop";
                    break;
                case "2":
                    s = "Mobile";
                    break;
                case "3":
                    s = "Workstation";
                    break;
                case "4":
                    s = "Enterprise Server";
                    break;
                case "5":
                    s = "Small Office and Home Office (SOHO) Server";
                    break;
                case "6":
                    s = "Appliance PC";
                    break;
                case "7":
                    s = "Performance Server";
                    break;
                case "8":
                    s = "Maximum";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string PowerManagementCapabilities(string code)
        {
            var s = "";
            switch (code)
            {
                case "0":
                    s = "Unknown";
                    break;
                case "1":
                    s = "Not Supported";
                    break;
                case "2":
                    s = "Disabled";
                    break;
                case "3":
                    s = "Enabled. The power management features are currently enabled, but the exact feature set is unknown or the information is unavailable.";
                    break;
                case "4":
                    s = "Power Saving Modes Entered Automatically. The device can change its power state based on usage or other criteria.";
                    break;
                case "5":
                    s = "Power State Settable. The SetPowerState method is supported. This method is found on the parent CIM_LogicalDevice class and can be implemented. For more information, see Designing Managed Object Format (MOF) Classes.";
                    break;
                case "6":
                    s = "Power Cycling Supported. The SetPowerState method can be invoked with the PowerState parameter set to 5 (Power Cycle).";
                    break;
                case "7":
                    s = "Timed Power-On Supported. The SetPowerState method can be invoked with the PowerState parameter set to 5 (Power Cycle) and Time set to a specific date and time, or interval, for power-on.";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string PowerOnPasswordStatus(string code)
        {
            var s = "";
            switch (code)
            {
                case "0":
                    s = "Disabled";
                    break;
                case "1":
                    s = "Enabled";
                    break;
                case "2":
                    s = "Not Implemented";
                    break;
                case "3":
                    s = "Unknown";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string PowerState(string code)
        {
            var s = "";
            switch (code)
            {
                case "0":
                    s = "Unknown";
                    break;
                case "1":
                    s = "Full Power";
                    break;
                case "2":
                    s = "Power Save - Low Power Mode";
                    break;
                case "3":
                    s = "Power Save - Standby";
                    break;
                case "4":
                    s = "Power Save - Unknown";
                    break;
                case "5":
                    s = "Power Cycle";
                    break;
                case "6":
                    s = "Power Off";
                    break;
                case "7":
                    s = "Power Save - Warning";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string PowerSupplyState(string code)
        {
            var s = "";
            switch (code)
            {
                case "1":
                    s = "Other";
                    break;
                case "2":
                    s = "Unknown";
                    break;
                case "3":
                    s = "Safe";
                    break;
                case "4":
                    s = "Warning";
                    break;
                case "5":
                    s = "Critical";
                    break;
                case "6":
                    s = "Nonrecoverable";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string ResetCapability(string code)
        {
            var s = "";
            switch (code)
            {
                case "1":
                    s = "Other";
                    break;
                case "2":
                    s = "Unknown";
                    break;
                case "3":
                    s = "Disabled";
                    break;
                case "4":
                    s = "Enabled";
                    break;
                case "5":
                    s = "Nonrecoverable";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string ThermalState(string code)
        {
            var s = "";
            switch (code)
            {
                case "1":
                    s = "Other";
                    break;
                case "2":
                    s = "Unknown";
                    break;
                case "3":
                    s = "Safe";
                    break;
                case "4":
                    s = "Warning";
                    break;
                case "5":
                    s = "Critical";
                    break;
                case "6":
                    s = "Nonrecoverable";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }
        public static string WakeUpType(string code)
        {
            var s = "";
            switch (code)
            {
                case "0":
                    s = "Reserved";
                    break;
                case "1":
                    s = "Other";
                    break;
                case "2":
                    s = "Unknown";
                    break;
                case "3":
                    s = "APM Timer";
                    break;
                case "4":
                    s = "Modem Ring";
                    break;
                case "5":
                    s = "LAN Remote";
                    break;
                case "6":
                    s = "Power Switch";
                    break;
                case "7":
                    s = "PCI PME#";
                    break;
                case "8":
                    s = "AC Power Restored";
                    break;
                default:
                    s = "Unable to Determine";
                    break;
            }
            return s;
        }

    }
}
